/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.google.code.peersim.pastry.protocol;

/**
 * This enumeration represents the set of legal states a {@link PastryProtocol}
 * instance can be in.
 *
 * @author frusso
 * @version 0.1
 * @since 0.1
 */
public enum PastryProtocolState {
  /**
   * The protocol instance has only been created.
   */
  UNINITIALIZED,
  /**
   * The protocol instance has been initialized, that is it has been assigned a valid
   * {@link PastryId}, and has created all its internal data-structures.
   */
  INITIALIZED,
  /**
   * A {@link PastryProtocolState#JOINING} node is a node that has already issued
   * its request for becoming member of a Pastry network but has not received a
   * joined-message yet.
   */
  JOINING,
  /**
   * A {@link PastryProtocolState#JOINED} node is a node that is already part of
   * a Pastry network.
   */
  JOINED;
}